package com.example.demo.Util;

public class StringUtil {
	/**
	 * 首字母大写
	 * @param  str 要转换的字符
	 * */
	public static String firstLetterToUpper(String str){
		char[] array = str.toCharArray();
		if(97<=array[0]&&array[0]<=122){
			array[0] -= 32;
		}

		return String.valueOf(array);
		
	}
	
	public static String subLastToEnd(String str,String p){		
		return str.substring(str.lastIndexOf(p)+1);		
	}
	
	public static String packToPath(String pack){
		return pack.replace(".","\\");
	}
	
	public static String pathToPack(String path){
		path=path.replace("\\", ".");
		return path.replace("/", ".");
	}
	
	public static String columnToProperty(String column) {
	        StringBuilder result = new StringBuilder();
	        // 快速检查
	        if (column == null || column.isEmpty()) {
	            // 没必要转换
	            return "";
	        } else if (!column.contains("_")) {
	            // 不含下划线，仅将首字母小写
	            return column.substring(0, 1).toLowerCase() + column.substring(1);
	        } else {
	            // 用下划线将原始字符串分割
	            String[] columns = column.split("_");
	            for (String columnSplit : columns) {
	                // 跳过原始字符串中开头、结尾的下换线或双重下划线
	                if (columnSplit.isEmpty()) {
	                    continue;
	                }
	                // 处理真正的驼峰片段
	                if (result.length() == 0) {
	                    // 第一个驼峰片段，全部字母都小写
	                    result.append(columnSplit.toLowerCase());
	                } else {
	                    // 其他的驼峰片段，首字母大写
	                    result.append(columnSplit.substring(0, 1).toUpperCase()).append(columnSplit.substring(1).toLowerCase());
	                }
	            }
	            return result.toString();
	        }
	 
	    } 
	
	
}
